#ifndef __TIMER_H__
#define __TIMER_H__

#ifdef __cplusplus
extern "C"
{
#endif

#include "tim.h"

#define TIMER1_TIME (1U)       /**< 1分钟*/
#define TIMER2_TIME (5U)       /**< 5分钟*/
#define TIMER3_TIME (1U * 60U) /**< 60 分钟*/


#define MIN_TO_SEC(MIN) (MIN * 60U)

#define TIMER1_SET MIN_TO_SEC(TIMER1_TIME)
#define TIMER2_SET MIN_TO_SEC(TIMER2_TIME)
#define TIMER3_SET MIN_TO_SEC(TIMER3_TIME)
#define TIMER4_SET (1U)

#define ARRY_LEN(ARRY) (sizeof(ARRY) / sizeof(ARRY[0]))

typedef void (*TimerCbk)(void);

typedef struct
{
    uint32_t currentTick; /**< 定时器启动时间 秒*/
    uint32_t targTick;    /**< 目标定时时间 秒*/
    uint32_t timeOut;     /**< 目标超时值 秒*/
    TimerCbk cbk;
} TimerDef;

void timer_entry(void);

void timer_init(void);

#ifdef __cplusplus
}
#endif

#endif /* __TIMER_H__ */
